package com.sinping.qh.dto.admin.user;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.sinping.qh.domain.user.UserLaboratory;
import com.sinping.qh.dto.base.BaseDTO;
import lombok.Data;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.List;

/**
 * 用户管理用户信息列表
 *
 * @author Tiansx
 * @create 2018-05-31 16:22
 **/
@Data
public class ApiUserInfolistDto extends BaseDTO implements Serializable {
    private static final long serialVersionUID = 7983953482419307771L;

    @JsonProperty("user_id")
    private String userId;
    /**
     * 用户名
     */
    @NotBlank(message = "用户名不能为空")
    @Pattern(regexp = "^[A-Za-z0-9]{1,20}$",message = "用户名格式不正确")
    @JsonProperty("user_name")
    private String userName;
    /**
     * 姓名
     */
    @NotBlank(message = "用户全名不能为空")
    @JsonProperty("full_name")
    private String fullName;
    /**
     * 电话号码
     */
    @NotBlank(message = "电话号码不能为空")
    @JsonProperty("telephone")
    private String telephone;
    /**
     * 电子邮箱
     */
    @JsonProperty("email")
    private String email;

    /**
     * 角色id
     */
//    @NotNull(message = "用户角色不能为空")
    @JsonProperty("role_id")
    private String roleId;

    /**
     * 所属单位id
     */
    @NotBlank(message = "所属单位id不能为空")
    @JsonProperty("unit_id")
    private String unitId;

    /**
     * 创建人id
     */
//    @NotBlank(message = "创建人不能为空")
    @JsonProperty("create_user_id")
    private String createUserId;

    /**
     * 修改人id
     */
    @JsonProperty(value = "update_user_id")
    private String updateUserId;
    /**
     * 负责院系
     */
    @JsonProperty(value = "manager_unit_name")
    private String managerUnitName;
    /**
     * 负责实验室
     */
    @JsonProperty(value = "manager_room_no")
    private String managerLabNo;

    /**
     * 角色名
     */
    @JsonProperty(value ="role_name")
    private String roleName;
    /**
     * 所属单位名
     */
    @JsonProperty(value ="unit_name")
    private String unitName;
    /**
     * 负责院系集合
     */
    @JsonProperty(value = "manager_unit_list")
    private List<UserLaboratory> managerUnitList;
    /**
     * 负责实验室集合
     */
    @JsonProperty(value = "manager_lab_list")
    private List<UserLaboratory> managerLabList;

}
